package JavaSE.Class3;

public class Class3 {
    public static void main(String[] args) {

    }

    public static void main5() {
        int i=1;
        while(i<=7){
            if(i==3){
                break;
            }
            System.out.print(i+" ");
            i++;
        }

        System.out.println();

        i=1;
        while(i<=7){
            if(i==3){
                i++;
                continue;
            }
            System.out.print(i+" ");
            i++;
        }

        /*会死循环 因为i会卡在continue那里不继续++ 值一直为3
        i=1;
        while(i<=7){
            if(i==3){
                continue;
            }
            System.out.print(i+" ");
            i++;
        }*/

    }
    public static void main4() {
        //1!+...+5!
        int i=1;
        int res=1;
        int sum=0;
        while(i<=5){
            res*=i;
            sum+=res;
            i++;
        }
        System.out.println(sum);
    }

    public static void main3() {
        boolean flag=true==true?true==false?false:true:false;
        //(true==true)?(true==false?false:true):false;
        System.out.println(flag);//true
    }

    public static void main2(String[] args) {
        int a=0b00001011;

        /*
        左移
        0000 1011   11
        0001 0110   22
        左移公式：n*2^x  x表示移动的位数
         */
        System.out.println(Integer.toBinaryString(a<<1));
        System.out.println(a + "->" + (a<<1));

        System.out.println("-------------");

        /*
        右移
        0000 1011   11
        0000 0101   5
        符号位为1补1 为0补0
        左移公式：n/2^x  x表示移动的位数
         */
        System.out.println(Integer.toBinaryString(a>>1));
        System.out.println(a + "->" + (a>>1));

    }

    public static void main1() {
        int a=0b01011011;
        int b=0b00111001;
        /*按位与
        0101 1011
        0011 1001  &
        -------------
        0001 1001
        运算规则：只要有0就是0
         */
        System.out.println(Integer.toBinaryString(a&b));

        /*按位或
        0101 1011
        0011 1001  |
        -------------
        0111 1011
        运算规则：只要有1就是1
         */
        System.out.println(Integer.toBinaryString(a|b));

       /*按位异或
        0101 1011
        0011 1001  ^
        -------------
        0110 0010
        运算规则：只要不同就是1
         */
        System.out.println(Integer.toBinaryString(a^b));

        /*按位取反
        0101 1011  ~
        -------------
        1010 0100
         */
        System.out.println(Integer.toBinaryString(~a));//特别长是因为32位字节

    }
}
